package com.henry.chatkit.messages

interface IMessageProvider {

    /**
     * 绑定会话适配器时触发的调用
     */
    fun setAdapter(adapter: MessageListAdapter?)

    /**
     * 获取聊天消息数据
     */
    fun getDataSource(): MutableList<MessageInfo>

    /**
     * 单个添加聊天消息
     */
    fun addMessage(messageInfo: MessageInfo?): Boolean

    /**
     * 单个删除聊天消息
     */
    fun deleteMessage(messages: MessageInfo): Boolean

    /**
     * 重发
     */
    fun resendMessage(messageInfo: MessageInfo): Boolean

    /**
     * 更新
     */
    fun updateMessage(messageInfo: MessageInfo): Boolean

    /**
     * 批量添加聊天消息
     * @param front 是否往前加（前：消息列表的头部，对应聊天界面的顶部，后：消息列表的尾部，对应聊天界面的底部）
     */
    fun addMessageList(messages: List<MessageInfo>, front: Boolean): Boolean

    /**
     * 批量删除聊天消息
     */
    fun deleteMessageList(messages: List<MessageInfo>): Boolean

    /**
     * 批量更新聊天消息
     */
    fun updateMessageList(messages: List<MessageInfo>): Boolean

    /**
     * 单个删除聊天消息
     */
    fun remove(index: Int)

}